A content delivery network (CDN) is one example of a distributed platform that hosts and serves content on behalf of various content providers. The CDN operates different sets of content caching and delivery servers at different points-of-presence (PoPs). The PoPs may redundantly cache the same content provider content at different network locations. The cached content can then be served from the PoPs in an optimized manner, whereby the PoPs serve the cached content to different sets of end users that are located closest to the PoP location. Moreover, the PoPs collectively form a large cooperative distribution network that is scalable to ensure quality of service when there are spikes in demand and when the network is under various attacks.
Ensuring the reliability and optimal performance of such a distributed platform is a significant undertaking. There are many complex factors involved in the real-time monitoring and error detection of such distributed platforms. One such factor is the sheer size of the distributed platform. The distributed platform operates multiple PoPs at different geographic locations with each PoP involving several servers providing cooperative content delivery. Each server typically serves different content to multiple users at any given time. It is not uncommon for such a distributed platform to simultaneously provide thousands of content streams to thousands of different users at any given time. This backdrop creates thousands of potential points of failure or error.
The complexity associated with delivering streaming content is another factor exacerbating the monitoring problem. Streaming content includes media content with any of audio, video, or interactive components. Monitoring streaming content, especially in a distributed platform, is difficult because the delivery of such content may involve different control plane and data plane packets as well as an ongoing coordinated dialog between the server and user client throughout the duration of the content stream. Moreover, the coordinated dialog changes for every streaming protocol that the distributed platform supports. The control plane packets attempt to provide a seamless playback of the content stream on the user device at the best possible quality based on several factors including the device's buffer, device's capabilities/resources, and network congestion as some examples. Accordingly, effective monitoring of streaming content involves more than ensuring receipt of the streaming content. It involves ensuring that the dialog between the client and server adapts the underlying transmission protocol according to the conditions of and between the client and the server.
This added complexity and the lack of adequate streaming monitoring tools for a distributed platform has made manual visual verification the default method with which to monitor the distributed platform's ability to deliver various content streams. A tester requests a stream under test and verifies its delivery by viewing the streaming content on his device. Clearly, manual visual verification is tenuous and unmanageable in the context of a distributed platform whereby the same streaming content is available from multiple PoPs, each PoP being a potential point of failure and with the distributed platform being tasked with the delivery of several thousand different content streams over different streaming protocols at any given moment. The alternative is for the distributed platform to defer to a reactive methodology, whereby the distributed platform publishes a content stream and relies on users that request the stream to notify the distributed platform of any issues related to the stream delivery. Once notified of an issue, the distributed platform can reactively address any identified issues.
There is therefore a need for a monitoring solution that proactively and effectively monitors and reports on the delivery of content streams using any of several streaming protocols from multiple locations within a distributed platform. More specifically, there is a need for a distributed platform monitoring solution that simultaneously monitors content streams from different network locations in real-time to detect any errors associated with the stream transmission and to provide alerts of any detected errors so that they may be resolved prior to affecting the quality of service to the distributed platform's users.